<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
		<title>Fragment management</title>
		<link type="text/css" rel="stylesheet" href="PLUGINS_ROOT/org.polarsys.capella.doc/html/styles.css"/>
	</head>
	<body>
		<h1 id="Fragment_management">Fragment management</h1>
		<p>Models are stored in files and can be split into fragment files.</p>
		<p>A fragmentation creates a new file, the fragmented model adds a reference to the new fragment.</p>
		<p>As a consequence, the grain is file (a set of model elements).</p>
		<h2 id="Model_Fragmentation">Model Fragmentation</h2>
		<h3 id="Overview">Overview</h3>
		<p>Capella provides a fragmentation facility to create containment fragments of a model.</p>
		<table border="1">
			<tr>
				<td>
					<p>
						<img height="34" width="32" border="0" src="Images/FragmentManagement_m7d1c8f1b.jpg"/>
					</p>
				</td>
				<td>
					<p>When working on 			a fragmented model, the user shall still 
						<b>always 			open the</b> 
						<b>root 			aird file (*.aird)</b>, and not open 			directly one fragment. Capella is in charge to load and 			manage fragment dependencies:
					</p>
					<ul>
						<li>.capellafragment: model fragments</li>
					</ul>
					<ul>
						<li>.airdfragment: diagram fragments</li>
					</ul>
				</td>
			</tr>
		</table>
		<p>
			<br/>

			<br/>
		</p>
		<p>Fragments are parts of model stored in external files, stored inside &ldquo;fragments&rdquo; sub folder. The main model fragment is stored in a head file. It references fragments. A fragment can also be split in multiple sub-fragments.</p>
		<p>
			<img height="411" width="396" border="0" src="Images/FragmentManagement_m1d9aa67f.png"/>
		</p>
		<h2 id="Why_splitting_Models_into_Fragments.3F">Why splitting Models into Fragments?</h2>
		<p>A model may be split using functional concerns. In Capella, it is highly recommended to split the model by architecture. Architecture is a description of the underlying system under different points of view.</p>
		<p>As a reminder, in Capella, there are 5 types of architecture (Operational Analysis, System, Logical, Physical, EPBS = Organizational). The recommended strategy is to create fragments for those elements.</p>
		<p>A model may be split using organisational concerns. A user or group is responsible for a part of the model. Then a fragment is dedicated to the user or group. As a consequence the user or group can reserve checkout this part to make changes and check-in when the job is done.</p>
		<p>NOTE: This strategy does not ensure the best collaboration between team members but it encourages formal exchanges.</p>
		<p>NOTE: Tooling cannot support every situation; fragments are provided for technical reason (to limit file size and to avoid huge files) and to separate responsibilities into sub-model files.</p>
		<p>The model can be split in fragments on most of the package types, on Classes, on Functions, etc.</p>
		<h2 id="Available_Elements">Available Elements</h2>
		<p>The available elements are:</p>
		<ul>
			<li>Architectures,</li>
			<li>Packages like InterfacePkg, DataPkg&hellip;</li>
			<li>Functions, Classes, etc.</li>
			<li>Components and Actors</li>
		</ul>
		<p>
			<br/>

			<br/>
		</p>
		<p>On other elements or if the Control&hellip; command is not supported on the selected element, the command is disabled.</p>
		<h2 id="The_Fragmentation_Command">The Fragmentation Command</h2>
		<p>Here, 
			<b>&ldquo;Fragment&hellip;&rdquo;</b> is executed on the Physical Architecture.
		</p>
		<p>
			<img height="757" width="467" border="0" src="Images/FragmentManagement_m44b065ba.png"/>
		</p>
		<p>The first step is to define the business model fragment, &lsquo;.capellafragment&rsquo; file, (fragment that will contain the Physical Architecture).</p>
		<p>
			<img height="157" width="369" border="0" src="Images/FragmentManagement_m48d4e4f4.png"/>
		</p>
		<p>The .airdfragment file (new fragment resource for diagram) is also asked to the user. Then the representation wizard is displayed if some diagrams are attached to related fragment. By default all attached diagrams are proposed to be included in new airdframent file. End User can selected the ones to exclude.</p>
		<p>
			<img height="557" width="518" border="0" src="Images/FragmentManagement_m574ef48f.png"/>
		</p>
		<p>
			<br/>

			<br/>
		</p>
		<h2 id="Creation_of_a_Default_Representation_Fragmentation">Creation of a Default Representation Fragmentation</h2>
		<p>The admin user, which is responsible for creating fragments, must create at least one representation for each business model fragment if he needs to propose a default &ldquo;.airdfragment&rdquo; in source control for each new user diagram creation.</p>
		<h2 id="Unfragmentation_Command">Unfragmentation Command</h2>
		<table border="1">
			<tr>
				<td>
					<p>
						<img height="34" width="32" border="0" src="Images/FragmentManagement_m7d1c8f1b.jpg"/>
					</p>
				</td>
				<td>
					<p>The end-user 			must 
						<b>not</b> 			delete a fragment (aird or capellafragment) through right click 			delete action.
					</p>
				</td>
			</tr>
		</table>
		<p>To unfragment, please use contextual &ldquo;
			<b>unFragment&hellip;</b>&rdquo; command.
		</p>
		<p>
			<img height="760" width="484" border="0" src="Images/FragmentManagement_mc4d218c.png"/>
		</p>
		<p>Running &lsquo;Unfragment&rsquo; command (for instance System Analysis):</p>
		<ol>
			<li>Will check out required file to move 	data from the capellafragment to capella</li>
			<li>Will check out aird file to move 	representation data from the aird fragment to the main aird.</li>
			<li>Remove related 	fragments files: 
				<i>airdfragment</i> 	and 
				<i>capellafragment</i>.
			</li>
		</ol>
		<p>
			<img height="174" width="528" border="0" src="Images/FragmentManagement_bc471b5.png"/>
		</p>
		<p>
			<img height="294" width="241" border="0" src="Images/FragmentManagement_m75358a0a.png"/>
		</p>
	</body>
</html>